/*
 * NodeListImpl.h
 *
 *  Created on: Apr 19, 2009
 *      Author: wrice
 */

#ifndef NODELISTIMPL_H_
#define NODELISTIMPL_H_
#include "DOMCoreImp.h"
namespace DOMCoreImp {

class NodeListImp : IMPLEMENTS( NodeList ) {
	friend class NodeImp;
public: // from NodeList
	virtual Node * item(unsigned long index);
	virtual unsigned long getLength();

private: // new methods
	virtual Node * insert(unsigned long index, Node * newChild);
	virtual Node * remove(unsigned long index);

private:
	typedef list< Node * > Nodes;
	typedef Nodes::iterator NodesModifierableIterator;
	Nodes nodeList_;

	NodesModifierableIterator getIterator(unsigned long index);
};

}

#endif /* NODELISTIMPL_H_ */
